package com.bzkj.basicinfo.mapper;

import com.bzkj.basicinfo.domain.ncc.dto.NccBasicStoStockDto;
import com.bzkj.basicinfo.domain.ncc.NccBasicStoStock;
import com.bzkj.basicinfo.domain.ncc.erp.StoStockBean;
import org.apache.ibatis.annotations.Param;

import java.util.HashMap;
import java.util.List;
import java.util.Set;

public interface NccBasicStoStockMapper
{

    /**
     * 根据code查询ncc仓库信息
     *
     * @param code
     * @return
     */
    NccBasicStoStock queryNccBasicStoStock(String code);

    NccBasicStoStock queryNccBasicStoStockByPk(@Param("pkStoDoc") String pkStoDoc);

    List<HashMap> queryNccBasicStoStockAll();

    /**
     * NCC仓库信息-如果能根据code查询到，修改数据
     *
     * @param stoStock
     */
    void updateNccBasicStoStock(NccBasicStoStock stoStock);

    /**
     * NCC仓库信息-如果不能根据code查询到，新增数据
     *
     * @param stoStock
     */
    void insertNccBasicStoStock(NccBasicStoStock stoStock);

    /**
     * 根据pkStoDoc修改仓库状态
     *
     * @Author wangzhichao
     * @Date 2024/12/05 17:06:14
     * @Param state 状态
     * @Param pkStoDoc 主键
     */
    int nccBasicStoStockEnableState(@Param("state") String state, @Param("pkStoDoc") String pkStoDoc);

    /**
     * 根据pK_STORDOC修改仓库信息
     * @Author wangzhichao
     * @Date 2024/12/06 08:32:56
     * @Param entity
     */
    int nccBasicStoStockUpdate(NccBasicStoStock entity);

    /**
     * 根据查询条件获取总条数
     * @Author wangzhichao
     * @Date 2024/12/06 08:58:29
     * @Param dto 查询条件
     */
    int getTotal(NccBasicStoStockDto dto);

    /**
     * 根据条件分页查询数据
     * @Author wangzhichao
     * @Date 2024/12/06 08:58:49
     * @Param dto 条件
     * @Param page 分页条件
     */
    List<NccBasicStoStock> findNccBasicStoStockData(@Param("dto") NccBasicStoStockDto dto);

    List<NccBasicStoStock> findNccBasicStoStockAll();

    List<String> findNccBasicStoStockName(String name);

    Set<String> findNccBasicpkMeasdocSetList(@Param("pkMeasdoc")List<String> pkMeasdoc);

    /**
     * 插入或更新基础数据
     * @param stoStockBean 仓库信息
     */
    void insertOrUpdate(@Param("item") StoStockBean stoStockBean);
}
